rpcd-mod-luci: add link details to ubus netdev information
authorJo-Philipp Wich <[email protected]>
Wed, 9 Jun 2021 17:18:04 +0000 (19:18 +0200)
committerJo-Philipp Wich <[email protected]>
Fri, 11 Jun 2021 06:32:03 +0000 (08:32 +0200)
Signed-off-by: Jo-Philipp Wich <[email protected]>
libs/rpcd-mod-luci/src/luci.c

index 258d2ec86b58a5fd23a74a5425b2c716f2034754..613cea5e73855c3219ded41135733ee47d63209a 100644 (file)
@@ -765,6 +765,30 @@ rpc_luci_parse_network_device_sys(const char *name, struct ifaddrs *ifaddr)
        blobmsg_add_u8(&blob, "pointtopoint", ifa_flags & IFF_POINTOPOINT);
        blobmsg_close_table(&blob, o2);
 
+       o2 = blobmsg_open_table(&blob, "link");
+
+       p = readstr("/sys/class/net/%s/speed", name);
+       if (*p)
+               blobmsg_add_u32(&blob, "speed", atoi(p));
+
+       p = readstr("/sys/class/net/%s/duplex", name);
+       if (*p)
+               blobmsg_add_string(&blob, "duplex", p);
+
+       n = atoi(readstr("/sys/class/net/%s/carrier", name));
+       blobmsg_add_u8(&blob, "carrier", n == 1);
+
+       n = atoi(readstr("/sys/class/net/%s/carrier_changes", name));
+       blobmsg_add_u32(&blob, "changes", n);
+
+       n = atoi(readstr("/sys/class/net/%s/carrier_up_count", name));
+       blobmsg_add_u32(&blob, "up_count", n);
+
+       n = atoi(readstr("/sys/class/net/%s/carrier_down_count", name));
+       blobmsg_add_u32(&blob, "down_count", n);
+
+       blobmsg_close_table(&blob, o2);
+
        blobmsg_close_table(&blob, o);
 }